package hxy.bytecode.datastruct;

import java.util.HashMap;

public class HashMapCode {
    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
        // 初始化容量都是2的倍数，即使初始化填写了1025.最后实际初始化的大小是2048，左移11位就是2048
        HashMap<String, Integer> hashMap1 = new HashMap<String, Integer>(1 << 11);
        hashMap1.size();
// HashMap是的key是不能重复的，如果有相同的key，最后一个key对应的value会把前一个相同的value覆盖掉。
        hashMap.put("key", 1);
        // 返回旧值，可以从源代码中分析出来
        Integer key = hashMap.put("key", 11);
        System.out.println("旧值:" + key);

        binary();
    }

    public static void binary() {
//        找一个小于等于2的次方那个数
        int i = Integer.highestOneBit(15);
        int i2 = Integer.highestOneBit(16);
        int i3 = Integer.highestOneBit(17);
        int i31 = Integer.highestOneBit(31);
        int i32 = Integer.highestOneBit(32);
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i31);
        System.out.println(i32);
    }

}
